package com.cskaoyan.javase.thread._6pool;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

/**
 *线程池执行完毕任务后，整个程序并没有立刻终止，而是处在执行状态。
 * 这是因为：
 * 线程池会持续等待进行任务提交，除非关闭线程池。
 *
 * @since 16:18
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo4 {
    public static void main(String[] args) {
        ExecutorService es = Executors.newFixedThreadPool(2);
        es.submit(() -> {
            for (int i = 0; i < 77777777; i++) {
                System.out.println(i);
                /*try {
                    TimeUnit.SECONDS.sleep(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }*/
            }
        });
        // es.submit(new Task());
        // es.submit(new Task());

        es.shutdownNow();
        // es.shutdown();
        // 执行完任务列表中所有已提交的任务，关闭线程池，不再接受新任务。
        // void shutdown()

        // 立刻停止所有正在执行的活动任务，暂停处理正在等待的任务，并返回等待执行的任务列表。
        // List<Runnable>shutdownNow()
    }
}
